knitr::opts_chunk$set(echo = TRUE)

Preparativos

# Carga de paquetes 
library(dplyr)
library(sf)
library(DT)
library(plotly)
library(leaflet)
#  Registros de presencia de JUnco vulcani
primates <-
  st_read(
    "https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/primates-cr-registros.csv",
    options = c(
      "X_POSSIBLE_NAMES=decimalLongitude",
      "Y_POSSIBLE_NAMES=decimalLatitude"
    ),
    quiet = TRUE
  )

# Asignacion de CRS
st_crs(primates) = 4326

# Capa geoespacil de cantones
# Carga de la capa de cantones
cantones <-
  st_read(
    "https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_cantones_simp_wgs84.geojson",
    quiet = TRUE
  )
# Cruce espacial con la tabla de cantones, para obtener el nombre del cantón
primates <-
  primates %>%
  st_join(cantones["canton"])


Introduccion

Se utilisa el conjunto de datos sobre 4 especies de primates de Costa Rica.


Tabla de registros de presencia

# Tabla de registros de presencia
primates %>%
  st_drop_geometry() %>%
  select(family, species, stateProvince, canton, locality, eventDate) %>%
  datatable(
    colnames = c("Familia","Especie","Provincia", "Canton", "Localidad", "Fecha"),
    options = list(searchHighlight = TRUE)
  )


Gráfico de pastel

# cargar colores
colors <- c('rgb(211,94,96)', 'rgb(128,133,133)', 'rgb(144,103,167)', 'rgb(171,104,87)')

#grafico pastel 
plot_ly(
  primates,
  labels = ~ species,
  type = "pie",
  textposition = "inside",
  textinfo = "label+percent",
  insidetextfont = list(color = "#FFFFFF"),
  marker = list(colors = colors)) %>%
  layout(
    title = "Cantidad de registros para cada especie de primate",
    xaxis = list(
      showgrid = FALSE,
      zeroline = FALSE,
      showticklabels = FALSE
    ),
    yaxis = list(
      showgrid = FALSE,
      zeroline = FALSE,
      showticklabels = FALSE
    )
  )

Gráfico de registros de presencia por mes

primates %>% st_drop_geometry() %>% group_by(mes = format(as.Date(eventDate, “%Y-%m-%d”), “%m”)) %>% summarize(suma_registros = n()) %>% filter(!is.na(mes)) %>% plot_ly(x = ~ mes, y = ~ suma_registros) %>% layout(title = “Registros de terciopelos (Bothrops asper) por mes”, xaxis = list(title = “Mes”), yaxis = list(title = “Cantidad de registros”)) # Mapa